トップ OSS紹介 PostgreSQL

PostgreSQL

サポート対象

NRIのOpenStandiaが提供するPostgreSQL最新情報

PostgreSQL情報

PostgreSQLとは

PostgreSQL(ポストグレエスキューエル)とは、C言語で実装されたオープンソースのオブジェクトリレーショナルデータベース管理システム(ORDBMS)です。
PostgreSQLの前身がカリフォルニア大学バークレー校で開発されて以来、世界中のコミュニティメンバーによる積極的な開発が続けられ、バージョンアップを繰り返す中で多くの機能追加が行われてきました。現在では、PostgreSQLは商用製品と比較しても遜色の無い本格的な機能と信頼性を持っており、MySQLと並ぶ人気のオープンソースデータベースです。

PostgreSQLは、バージョン6.3から日本語に対応し、日本語の情報も充実していたため、日本でも早くからさまざまな規模のシステムで幅広く使われてきました。多機能であるという特徴に加え、近年では大規模ユーザ向けの性能改善が積極的に行われたことでスケーラビリティもさらに向上し、大規模システムでのPostgreSQL導入事例も増えてきています。

主な特徴

PostgreSQLは、次のような特徴があります。

スケーラビリティと柔軟性

PostgreSQLは組み込みアプリケーションから大規模データ・ウェアハウスまで幅広く対応できます。
ただし、PostgreSQLはクライアント/サーバ・アーキテクチャであることからアプリケーションと別プロセスで動作することになります。 ですので、組み込みシステムのアーキテクチャによっては対応できない場合もあります。
また、専用のミドルウェアのpgpool-IIを利用することで複数構成のPostgreSQLをロードバランシングして利用でき、スケールアウトすることが可能です。

高機能

PostgreSQLはISO/IEC 9075:2016に準拠し(PostgreSQL 15現在)、トランザクション、アーカイブログ、ストアドプロシージャ、ビュー、トリガ、マテリアライズドビューなど、商用DBと遜色の無い多くの機能を実装しています。
PostgreSQLはスタンダードなSQLに非常に近いため、他のDBと同様のスキルで使用することができます。
PostgreSQLは高度なオプティマイザを実装しています。
PostgreSQLのカタログ情報もビューの形式で保持しているため、SQLを用いて統計情報にアクセスすることができます。

高性能

PostgreSQLはテーブル・パーティショニングやテーブル・スペースなど大規模システム向けの機能拡張が実装されています

高可用性

PostgreSQLではバージョン9.0から標準機能でレプリケーションをサポートしています。
さらに専用のミドルウェア(pgpool、pgpool-IIなど)を利用することで可用性の高いシステムを実現する方法が複数あります。
PostgreSQLは欠点とバグの少ない堅牢なコードを提供しています。

マルチプラットフォーム

PostgreSQLは、Linux(最近のディストリビューションすべて)、FreeBSD、OpenBSD、NetBSD、macOS、HP/UX、Solaris、AIX、Microsoft Windowsなど、さまざまなOSプラットフォームに対応しています

マルチバイトコード対応

PostgreSQLは、日本語その他のマルチバイトコードに対応し、テーブル名、カラム名、格納するデータへのマルチバイトコードの利用やLIKEや正規表現によるマルチバイト検索もサポートしています

他のDBMSとの比較

PostgreSQLとMySQL Community Server(マイエスキューエル)との比較結果を下表に記します。

比較項目

PostgreSQL

MySQL

コメント

接続時のデータベース指定

任意

任意

データベース指定自体は任意ですが、MySQLでは非選択状態になり、 PostgreSQLの場合はユーザ名と同名のデータベースにログインしようとし、存在しない場合はエラーとなるという違いがあります。

アーキテクチャ

マルチプロセス

マルチスレッド

MySQLはプログラム全体が1プロセスで実行されます。
これに対しPostgreSQLはプログラム以外に1コネクションも1プロセスで動作します。
Apacheで言う所のWorkerとPreForkのような違いがあります。

自動キャスト

なし

あり

MySQLでは数値と文字列などの自動キャストを行います。
これに対し、PostgreSQLでは一切行いません。

トランザクション内のDDL

サポートする

サポートしない

MySQLではトランザクション内のDDLは自動コミットされるので、 ロールバックできません。
これに対し、PostgreSQLではトランザクションをサポートしていますのでロールバック可能です。

returning句

サポートする

サポートしない

PostgreSQLではINSERTやUPDATEの際に RETURNING句を指定することで戻り値にカラムの値を指定できます。

開発主体

コミュニティ

企業

MySQLはOracle社が開発・保守を行い、PostgreSQL ではコミュニティが主体となって開発・保守を進めています。

ライセンス

PostgreSQL

GPL

MySQLのコミュニティ版はGPLです。
それに対し、PostgreSQLは前述の通りBSDライセンスに類似した独自のPostgreSQLライセンスです。

このように、PostgreSQLはMySQL(マイエスキューエル)と比較すると、標準的なSQLに準拠している厳格なDBMSだといえます。

独自のデータ定義

PostgreSQLは、「ユーザ定義データ型」を定義できます

万全なサポート

PostgreSQLはNRIをはじめとした企業提供によるハイレベルで正式なサポートが提供されます

コスト効果

PostgreSQLは高機能なDBMSでありながら、データベースのライセンスコストを削減することができます

類似プロダクト

商用ソフトウェア製品では、IBM Informix/Illustra、IBM DB2 、Oracle、PowerGres Plus が同様の機能を提供しています。

動作環境

前提となる動作環境は、以下のとおりです。(バージョン12.xの場合)

OS

  • Windows
  • Linux
  • FreeBSD
  • OpenBSD
  • NetBSD
  • macOS
  • AIX
  • HP/UX
  • Solaris

PostgreSQLのライセンス

PostgreSQLのライセンスは、BSDライセンスやMITライセンスと類似する独自のPostgreSQLライセンスです。
この独自ライセンスはBSDライセンスやMITライセンスと同様にソースコードを無料で使用できるのはもちろんのこと、著作権表示やライセンス条文、無保証であることを明記すればソースコードを複製・改変して作成した場合でもソースコードを公開せずに頒布することができます。

製品ダウンロード

オープンソース年間サポートサービス

OpenStandiaではOSSを安心してご利用いただけるように、オープンソース年間サポートサービスをご提供しております。
サポートしているOSSは下記ページをご参照ください。

お気軽にお問い合わせください

関連OSS

  • MongoDB
    サポート対象

    MongoDB

    モンゴデービー。高可用性、スケーラビリティ、スキーマレスに注目が集まる、NoSQLデータベースです。

  • MariaDB
    サポート対象

    MariaDB

    マリアデービー。MySQLから派生したオープンソースのリレーショナルデータベース管理システム(RDBMS)です。

  • MySQL
    サポート対象

    MySQL

    マイエスキューエル。多くのOS・プラットフォームで稼動するオープンソースのリレーションナルデータベース管理システム

オープンソースに関するさまざまな課題、OpenStandiaがまるごと解決します。
下記コンテンツも
あわせてご確認ください。